id | title | description | subtitle | tocVideo |
---|---|---|---|---|
functions-deploy |
Deploy to Production |
Deploy your Edge Functions to your remote Supabase Project. |
Deploy your Edge Functions to your remote Supabase Project. |
5OWH9c4u68M |
Once you have developed your Edge Functions locally, you can deploy them to your Supabase project.
Log in to the Supabase CLI if necessary:
supabase login
See the CLI Docs to learn how to install the Supabase CLI on your local machine.
Get the project ID associated with your function by running:
supabase projects list
If you haven't yet created a Supabase project, you can do so by visiting database.new.
Link your local project to your remote Supabase project using the ID you just retrieved:
supabase link --project-ref your-project-id
Since Supabase CLI version 1.123.4, you must have Docker Desktop installed to deploy Edge Functions.
You can deploy all of your Edge Functions with a single command:
supabase functions deploy
You can deploy individual Edge Functions by specifying the name of the function in the deploy command:
supabase functions deploy hello-world
By default, Edge Functions require a valid JWT in the authorization header. If you want to use Edge Functions without Authorization checks (commonly used for Stripe webhooks), you can pass the --no-verify-jwt
flag when deploying your Edge Functions.
supabase functions deploy hello-world --no-verify-jwt
Be careful when using this flag, as it will allow anyone to invoke your Edge Function without a valid JWT. The Supabase client libraries automatically handle authorization.
You can now invoke your Edge Function using the project's ANON_KEY
, which can be found in the API settings of the Supabase Dashboard.
<CH.Code>
curl --request POST 'https://<project_id>.supabase.co/functions/v1/hello-world' \
--header 'Authorization: Bearer ANON_KEY' \
--header 'Content-Type: application/json' \
--data '{ "name":"Functions" }'
import { createClient } from '@supabase/supabase-js'
// Create a single supabase client for interacting with your database
const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key')
const { data, error } = await supabase.functions.invoke('hello-world', {
body: { name: 'Functions' },
})
</CH.Code>
You should receive the response { "message":"Hello Functions!" }
.